/*
 * ----------------------------------------------------------------------------
 *  (C) Copyright European Telecommunications Standards Institute, 2001.
 *  All Rights Reserved.
 *
 *  All copies of this program, whether in whole or in part, and whether
 *  modified or not, must display this and all other embedded copyright
 *  and ownership notices in full.
 *
 * ----------------------------------------------------------------------------
 */
package org.etsi.ttcn.tri;

import java.io.Serializable;

/**  
     A value of type TriParameterType includes an encoded parameter
     and a value of TriParameterPassingModeType to represent the
     passing mode specified for the parameter in the TTCN-3 ATS.
 */
public interface TriParameter extends Serializable {

    /** Returns the parameter name as defined in the TTCN-3
	specification.
    */
    public String getParameterName();

    /** Sets the name of this TriParameter parameter to name.
     */
    public void   setParameterName(String name);

    /** Returns the parameter passing mode of this parameter.
     */
    public int    getParameterPassingMode();

    /** Sets the parameter mode of this TriParameter parameter to
	mode.
    */
    public void   setParameterPassingMode(int mode);

    /** Returns the encoded parameter representation of this
	TriParameter, or the null object if the parameter contains the
	distinct value null (see also section 7.5.7).
    */
    public byte[] getEncodedParameter();

    /** Sets the encoded parameter representation of this TriParameter
	to parameter. If the distinct value null shall be set to
	indicate that this parameter holds no value, the Java null
	shall be passed as parameter (see also section 7.5.7).
    */
    public void   setEncodedParameter(byte[] parameter);
}
